package com.hjq.fcloud.ui.activity

import android.content.Intent
import android.os.Bundle
import android.os.Handler
import com.gyf.immersionbar.BarHide
import com.gyf.immersionbar.ImmersionBar
import com.hjq.fcloud.R
import com.hjq.fcloud.app.AppActivity
import com.hjq.fcloud.app.AppApplication
import com.hjq.fcloud.callback.DialogCallBack
import com.hjq.fcloud.ui.dialog.RightAlertDialog
import com.hjq.fcloud.utils.AppConfigUtils
import com.hjq.fcloud.utils.SdkHelper
import com.hjq.toast.ToastUtils

/**
 * author : Android 轮子哥
 * github : https://github.com/getActivity/AndroidProject
 * time   : 2018/10/18
 * desc   : 闪屏界面
 */
class SplashActivity : AppActivity() {
    var mHandler: Handler = Handler()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

    override fun onNewIntent(intent: Intent?) {
        super.onNewIntent(intent)
        setIntent(intent)
    }


    override fun getLayoutId(): Int {
        return R.layout.splash_activity
    }

    override fun initView() {
    }

    override fun initData() {
        if (AppConfigUtils.launchOk) {
            toStartApp()
        } else {
            showRightTips()
        }
    }

    private fun showRightTips() {
        RightAlertDialog(this, R.style.BaseDialogTheme, object : DialogCallBack {
            override fun callBack(pageIndex: Int, `object`: Any?) {
                if (pageIndex == RightAlertDialog.CONFIRM) {
                    SdkHelper.initSdk(AppApplication.mContext)
                    AppConfigUtils.saveLaunchOk(true)
                    toStartApp()
                } else if (pageIndex == RightAlertDialog.CANCELBALANCE) {
                    finish()
                }
            }
        }).show()
    }

    private fun toStartApp() {

        mHandler.postDelayed(object : Runnable {
            override fun run() {
                if (AppConfigUtils.checkLoginOK()) {
                    jumpMainPage()
                } else {
                    startActivity(LoginActivity::class.java)
                }
                finish()
            }
        }, 1000)
    }

    private fun jumpMainPage() {
        MainActivity.start(context)
        finish()
    }

    override fun createStatusBarConfig(): ImmersionBar {
        return super.createStatusBarConfig() // 隐藏状态栏和导航栏
            .hideBar(BarHide.FLAG_HIDE_BAR)
    }

    override fun onBackPressed() {
        //禁用返回键
        //super.onBackPressed();
    }

    override fun initActivity() {
        // 问题及方案：https://www.cnblogs.com/net168/p/5722752.html
        // 如果当前 Activity 不是任务栈中的第一个 Activity
        if (!isTaskRoot) {
            val intent = intent
            // 如果当前 Activity 是通过桌面图标启动进入的
            if (intent != null && intent.hasCategory(Intent.CATEGORY_LAUNCHER)
                && Intent.ACTION_MAIN == intent.action) {
                // 对当前 Activity 执行销毁操作，避免重复实例化入口
                finish()
                return
            }
        }
        super.initActivity()
    }

    @Deprecated("")
    override fun onDestroy() {
        // 因为修复了一个启动页被重复启动的问题，所以有可能 Activity 还没有初始化完成就已经销毁了
        // 所以如果需要在此处释放对象资源需要先对这个对象进行判空，否则可能会导致空指针异常
        super.onDestroy()
    }
}